home *** CD-ROM | disk | FTP | other *** search
/ HyperLib 1997 Winter - Disc 1 / HYPERLIB-1997-Winter-CD1.ISO.7z / HYPERLIB-1997-Winter-CD1.ISO / オンラインウェア / UTIL / My Notepad 1.9 folder.sit / My Notepad 1.9 folder / My Notepad.rsrc / TEXT_600_Note.txt < prev    next >
Text File  |  1996-03-27  |  5KB  |  193 lines

  1.  
  2. '=====         Edit Menu.FLTR        =====
  3. '===        ツゥ 1995 Staz Software       ===
  4. '=====        Program Generator      =====
  5. '=======                           =======
  6. '=========================================
  7.  
  8. INCLUDE FILE _aplIncl
  9. GLOBALS "Runtime.GLBL"
  10. COMPILE 0,_pGproject'dimmedVarsOnly
  11. END GLOBALS
  12. '-----------------------------------------
  13. GOTO "Edit Menu.FLTR"
  14. '-----------------------------------------
  15. DEF FN pGfindMenu(theTitle$) USING GLBLfindMenu&
  16. _EMUndoItem      = 1
  17. _EMCutItem       = 3
  18. _EMCopyItem      = 4
  19. _EMPasteItem     = 5
  20. _EMClearItem     = 6
  21. _EMSelectAllItem = 7
  22.  
  23. '=========================================
  24. LOCAL FN EMenableUndo
  25. '---------------------------------------
  26. ' Save current field for later undo.
  27. '---------------------------------------
  28. DIM theField,t$,editMenu
  29.  
  30. theField = WINDOW(_EFnum)
  31. DEF DISPOSEH(gUndoHndl&)
  32. LONG IF theField
  33. LONG IF WINDOW(_EFTextLen)
  34. t$ = STR#(_baseID - 3,1)
  35. editMenu   = FN pGfindMenu(t$)
  36. GET FIELD gUndoHndl&,theField
  37. gUndoStart = WINDOW(_selStart)
  38. gUndoEnd   = WINDOW(_selEnd)
  39. END IF
  40. END IF
  41. END FN
  42.  
  43. '=========================================
  44. LOCAL FN EMautoMenu
  45. '---------------------------------------
  46. ' Decide when to set up undo.
  47. '---------------------------------------
  48. DIM mHndl&,t$,theItem$
  49.  
  50. mHndl& = FN GETMHANDLE(gWhichMenu)
  51. LONG IF mHndl&
  52. t$ = mHndl&..menuData$
  53. SELECT t$'Font,Size,Style
  54. CASE STR#(_baseID - 4,1),STR#(_baseID - 4,2),STR#(_baseID - 4,3)
  55. FN EMenableUndo
  56. gUndoable = _zTrue
  57. CASE STR#(_baseID - 3,1)
  58. CALL GETITEM(mHndl&,gWhichItem,theItem$)
  59. SELECT theItem$
  60. CASE STR#(_baseID - 3,2)'"Undo"
  61. EDIT FIELD WINDOW(_EFnum),&gUndoHndl&
  62. SETSELECT gUndoStart,gUndoEnd
  63. gUndoable = _false
  64. CASE STR#(_baseID - 3,3)'"Select All"
  65. LONG IF WINDOW(_EFnum)
  66. SETSELECT 0,WINDOW(_EFTextLen)
  67. END IF
  68. END SELECT
  69. END SELECT
  70. END IF
  71. END FN
  72.  
  73. '=========================================
  74. LOCAL FN EMfixEditMenu
  75. '---------------------------------------
  76. ' Enable/disable edit menu items.
  77. '---------------------------------------
  78. DIM selAllItem,lastItem,editMenu,mHndl&
  79. DIM itemCount,thisItem,theField,x,t$
  80. DIM selAllItem$
  81. selAllItem       = 0
  82. lastItem         = _EMClearItem
  83. t$               = STR#(_baseID - 3,1)
  84. editMenu         = FN pGfindMenu(t$)
  85. mHndl&           = FN GETMHANDLE(editMenu)
  86. LONG IF mHndl&
  87. itemCount      = FN COUNTMITEMS(mHndl&)
  88.  
  89. ' See if menu contains "Select All"
  90.  
  91. selAllItem$    = STR#(_baseID - 3,3)
  92. selAllItem$    = UCASE$(selAllItem$)
  93. FOR thisItem   = 1 TO itemCount
  94. CALL GETITEM(mHndl&,thisItem,t$)
  95. LONG IF UCASE$(t$) = selAllItem$
  96. selAllItem = thisItem
  97. thisItem   = itemCount
  98. END IF
  99. NEXT
  100. IF selAllItem THEN MENU editMenu,selAllItem,_disable
  101.  
  102. ' DA is currently in front
  103.  
  104. LONG IF SYSTEM(_aplActive) = 0
  105. MENU editMenu,_EMUndoItem ,_enable,"Undo"
  106. MENU editMenu,_EMCutItem  ,_enable
  107. MENU editMenu,_EMCopyItem ,_enable
  108. MENU editMenu,_EMPasteItem,_enable
  109. MENU editMenu,_EMClearItem,_enable
  110. XELSE
  111.  
  112. ' This application is currently in front
  113.  
  114. LONG IF WINDOW(_activeWnd) = 0 OR gUndoHndl& = 0 OR gUndoable = 0
  115. t$ = STR#(_baseID - 3,4)
  116. MENU editMenu,_EMUndoItem,_disable,t$
  117. XELSE
  118. t$ = STR#(_baseID - 3,2)
  119. MENU editMenu,_EMUndoItem,_enable,t$
  120. END IF
  121. FOR x = _EMCutItem TO _EMClearItem
  122. MENU editMenu,x,0
  123. NEXT
  124.  
  125. ' Check for text/picture on clipboard
  126.  
  127. theField = WINDOW(_EFnum)
  128. LONG IF theField
  129. LONG IF WINDOW(_textClip)
  130. MENU editMenu,_EMPasteItem,_enable
  131. END IF
  132. LONG IF WINDOW(_EFTextLen)
  133. LONG IF WINDOW(_selStart) <> WINDOW(_selEnd)
  134. MENU editMenu,_EMCutItem   ,_enable
  135. MENU editMenu,_EMCopyItem  ,_enable
  136. MENU editMenu,_EMClearItem ,_enable
  137. END IF
  138. IF selAllItem THEN MENU editMenu,selAllItem,_enable
  139. END IF
  140. END IF
  141. END IF
  142. END IF
  143. END FN
  144.  
  145. '=========================================
  146. LOCAL FN EMcheckScrapSize
  147. '---------------------------------------
  148. ' Make sure text paste does not exceed
  149. ' the 32K limit of TextEdit.
  150. '---------------------------------------
  151. DIM theSize&,offSet&,editMenu,t$
  152.  
  153. LONG IF gWhat = 16
  154. t$ = STR#(_baseID - 3,1)
  155. editMenu = FN pGfindMenu(t$)
  156. LONG IF gWhereY = editMenu
  157. LONG IF gWhereX = _EMPasteItem
  158. theSize& = FN GETSCRAP(0,_"TEXT",offSet&)
  159. LONG IF theSize& + WINDOW(_EFTextLen) > 32750&
  160. % EVENT,0
  161. EVENT% = 7
  162. DIALOG = _showErr
  163. END IF
  164. END IF
  165. END IF
  166. END IF
  167. END FN
  168.  
  169. '=========================================
  170. "Edit Menu.FLTR"
  171. '=========================================
  172. SELECT gLongAction&
  173. CASE _menuLong    : FN EMautoMenu
  174. CASE _mShutdown   : DEF DISPOSEH(gUndoHndl&)
  175. CASE _oAdjustMenu : FN EMfixEditMenu
  176. CASE _oEvents     : FN EMcheckScrapSize
  177. CASE _wActivate   : FN EMenableUndo
  178. CASE _fActivate   : FN EMenableUndo : gUndoable = _false
  179. CASE _fChange     : FN EMenableUndo : gUndoable = _zTrue
  180. CASE _fKeypress                     : gUndoable = _zTrue
  181. LONG IF WINDOW(_selStart) < WINDOW(_selEnd)
  182. FN EMenableUndo
  183. END IF
  184. LONG IF WINDOW(_EFTextLen) > 32750&
  185. gKey$   = ""
  186. gAction = 0
  187. EVENT%  = 8
  188. DIALOG  = _showErr
  189. END IF
  190. END SELECT
  191. '=========================================
  192. IF 0 THEN RETURN
  193.